Hi Brad,
Basically "S curve" (3rd order) is only supported for single axis moves. Although multiple axes can be commanded to move at the same time, they are not coordinated in a manner that they follow a path. KMotion refers to this as "Independent" motion. Single axis S Curve motion is relatively straight forward and KFLOP has the capability to do all the trajectory planning for Independent motion on its own including on-the-fly blending of Moves and Jogs. There is really no support (or need) for this in the C++ libraries as everything is handled in KFLOP. In this way Motions commanded from the PC or from within KFLOP are identical. Positions, Velocities, Accelerations, and Jerk are all in units of raw counts in KFLOP. If you wish to do 2nd order Independent motion you can do so by setting the Jerk to a huge value (ie 1000X
the Acceleration so the full acceleration is applied in 1ms).
I think KFLOP uses the normal definition of Jerk which is the rate of change of acceleration. Some other controllers sometimes specify a "Jerk Time" or "Jerk Percentage" which somehow indirectly defines the Jerk.
Multi-axis coordinated motion Trajectory Planning is much more complex and we are currently only able to plan 2nd order motion using the CoordMotion Library that runs on the PC. It has its own settings of Resolution, Velocity, and Acceleration and uses units of Inches. Jerk is not specified and allowed to be infinite.
HTH
TK
Group: DynoMotion |
Message: 4073 |
From: Brad Murry |
Date: 2/23/2012 |
Subject: Re: Motion Profiles |
Hello Tom, Thank makes sense. I did not mean for coordinated S curve profiles, just multi-axis moves(usually for rapids) using it and each axis arrives at its destination independently. I guess in these situations I would just iterate thru each axis I want to move and command them individually, no prob. Are you saying that all moves have smoothing applied? So can I get a trapezoidal profile by setting the jerk to/near zero? High speed boring is where we primarily require trap moves to minimize dwell and prevent tool burning, it is pretty violent but gets the job done to spec(time vs quality) and the tooling lasts longer. I think I am accustomed to seeing jerk as a percentage and now I am confused to what the other devices are deriving the percentage from because you have stated that a general rule of thumb is to have your jerk set to 10x the accel. Maybe that is 1.0 to the other devices…. Thanks for the detailed info. -Brad Murry From: DynoMotion@yahoogroups.com [mailto:DynoMotion@yahoogroups.com] On Behalf Of Tom Kerekes Sent: Thursday, February 23, 2012 4:29 PM To: DynoMotion@yahoogroups.com Subject: Re: [DynoMotion] Motion Profiles Basically "S curve" (3rd order) is only supported for single axis moves. Although multiple axes can be commanded to move at the same time, they are not coordinated in a manner that they follow a path. KMotion refers to this as "Independent" motion. Single axis S Curve motion is relatively straight forward and KFLOP has the capability to do all the trajectory planning for Independent motion on its own including on-the-fly blending of Moves and Jogs. There is really no support (or need) for this in the C++ libraries as everything is handled in KFLOP. In this way Motions commanded from the PC or from within KFLOP are identical. Positions, Velocities, Accelerations, and Jerk are all in units of raw counts in KFLOP. If you wish to do 2nd order Independent motion you can do so by setting the Jerk to a huge value (ie 1000X the Acceleration so the full acceleration is applied in 1ms). I think KFLOP uses the normal definition of Jerk which is the rate of change of acceleration. Some other controllers sometimes specify a "Jerk Time" or "Jerk Percentage" which somehow indirectly defines the Jerk. Multi-axis coordinated motion Trajectory Planning is much more complex and we are currently only able to plan 2nd order motion using the CoordMotion Library that runs on the PC. It has its own settings of Resolution, Velocity, and Acceleration and uses units of Inches. Jerk is not specified and allowed to be infinite. Hello Tom,
On single and multi-axis moves, can I specify a trapezoidal motion profile vs an "S curve" smoothed profile?
On some devices I can toggle between the two types and on others I can configure the Jerk parameter. Jerk seem to either mean something different on the Kflop than I am accustomed to.
If kflop supports both of these profiles, what is the best way to toggle?
Thank you, Brad Murry
|
|
Group: DynoMotion |
Message: 4074 |
From: Tom Kerekes |
Date: 2/23/2012 |
Subject: Re: Motion Profiles |
Hi Brad,
Yes all moves are s curves that use Jerk so just set Jerk to a big value if you want Trapazoidal moves.
The is a risk commanding moves down and up from the PC is that there may be a delay if the PC is not responsive. Most of the time it will work fine but once in a while there might be a delay depending on what Windows is doing. To guarantee timing of multiple moves you would need to use a C program.
Regards
TK
Group: DynoMotion |
Message: 4076 |
From: Kyrylo Perederiy |
Date: 2/24/2012 |
Subject: Re: Motion Profiles |
I was under the impression that when I perform StraightFeed() movements,
the Jerk parameter will limit the rate of change of acceleration. Now it does
not sound like it’s honoring jerk at all...
Is StraightFeed() method any different in this regard? When I tried to use
it long time ago, it did not appear to be completely coordinated to me. Each
axis was arriving at commanded position mostly independently.
In my pick&place application, I definitely want to be able to control
jerk in certain situations, but jog() along is not going to cut it.
Thanks,
Kyryl
Sent: Thursday, February 23, 2012 4:55 PM
Subject: Re: [DynoMotion] Motion Profiles
Hi Brad,
Yes all moves are s curves that use Jerk so just set Jerk to a big
value if you want Trapazoidal moves.
The is a risk commanding moves down and up from the PC is that there
may be a delay if the PC is not responsive. Most of the time it will work
fine but once in a while there might be a delay depending on what Windows is
doing. To guarantee timing of multiple moves you would need to use a C
program.
Regards
TK
Group: DynoMotion |
Message: 4077 |
From: Tom Kerekes |
Date: 2/24/2012 |
Subject: Re: Motion Profiles |
Hi Kyryl,
You might be confusing StraightTraverse() and StraightFeed(). StraightTraverse() will move each axis independently while honoring Jerk. StraightFeed will move in a coordinated manner along a straight line but not honor a Jerk Limit.
Regards
TK
Group: DynoMotion |
Message: 4079 |
From: Kyrylo Perederiy |
Date: 2/24/2012 |
Subject: Re: Motion Profiles |
Yes, I meant to say StraightTraverse(). It’s good to know that it honors
Jerk. Will use it instead of StraightFeed in critical places.
Sent: Friday, February 24, 2012 1:54 PM
Subject: Re: [DynoMotion] Motion Profiles
Hi Kyryl,
You might be confusing StraightTraverse() and
StraightFeed(). StraightTraverse() will move each axis independently while
honoring Jerk. StraightFeed will move in a coordinated manner along
a straight line but not honor a Jerk Limit.
Regards
TK
| | | | | | | | | |